﻿/*
 * This software is the confidential and proprietary
 * information of NetBay
 * Such confidential information should not be disclosed
 * NetBay copyright(c) 2011
 */

#region using
using System.Collections.Generic;
using System.ServiceModel;

#endregion

namespace Rio.Applications.Web.RioServices
{
    [ServiceContract]
    public interface IRioService
    {

        [OperationContract]
        List<NetBay.Core.BusinessEntities.User> GetAllUsers();

        [OperationContract]
        bool AddDocumentsToFolder(long OrganisationId, long FolderTypeId, long FolderId, List<string> DocumentsFullPath, string Item, long Rank, string Author, string Note, bool AddToFulltext, bool MoveDocument);

        [OperationContract]
        bool AddDocument(long OrganisationId, long FolderTypeId, Dictionary<long, string> DicValorization, List<string> DocumentsFullPath, string Item, string Note, string Author, string PhotoCredit, string VideoLenght, bool AddToFulltext, bool MoveDocument, string p_szIdCourrierErp = "", string p_szMesureErp = "");

        [OperationContract]
        bool UpdateFolderIndex(long p_lFolderTypeId, long p_lFolderId, Dictionary<string, string> p_dicIndexValue);

        [OperationContract]
        long IsFolderExist(long p_lOrganisationId, long p_lFolderTypeId, Dictionary<long, string> p_oIndexValorization);

        [OperationContract] 
        bool PerformNTLMAuthentication();

        [OperationContract]
        bool PerformRioAuthentication(string User, string Password);

        [OperationContract]
        List<NetBay.Core.BusinessEntities.Genesis> GetGenesisFolder(string p_sConnectorName);

        [OperationContract]
        string GetErpParam(string p_sValue, int p_iOrga, int p_iTd);

        [OperationContract]
        bool GetGenesisIndividuExist(string s_lTdTableName, string s_lIndividu, string s_lIndexPosit);

        [OperationContract]
        bool GetGenesisCourrierIdExist(string s_lCourrierIdErp, string s_lTdTableName, string s_lIndividu, string s_lIndexPosit);

        [OperationContract]
        List<NetBay.Core.BusinessEntities.Historic.HistoricInformation> GetLastConsultations(string p_sAction, long p_lUserId, int p_iNbLine, bool p_bSearch);

        [OperationContract]
        Dictionary<long, long> GetIndex(string s_FolderTypeTableName);

        [OperationContract]
        NetBay.Core.BusinessEntities.Organization GetOrgaByErpName(string p_sConnectorName);
    }
}
